package com.zym.field_method10;

public class Employee {//员工类

    //1.属性
    private int id;//唯一编号
    private String name;//员工姓名
    private int age;

    //2.方法


    public void setId(int id) {
        this.id = id;
    }
    public int getId() {
        return id;
    }
    /**
     *
     * 希望的是:
     * 左边是成员变量 = 局部变量赋值;
     * 由于就近原则的原因
     * 现在变成了
     *  左边是局部变量 = 右边还是局部变量;
     *  成员变量根本没有被赋值
     *  1.之前的解决方法----》换了局部变量名
     *  2.用this关键字解决
     *
     *  ①什么是this
     *    字面意思：这个 这 的意思
     *    java：在类里面 特指当前 类对象里面的 属性或方法
     *  ②为什么要用this
     *    解决 成员变量与局部变量名冲突的问题
     *  ③怎么用this
     *    this.属性/方法
     *  ④在哪里用this
     *      get/set方法里面
     *     内部普通方法
     *   左边是成员变量 = 右边是局部变量
     *     构造器里面
     *      1.this.成员变量 = 局部变量;
     *      2.this();-----》代指空参构造器
     *        this(实参);----》代指调用有参构造
     *
     *
     */
    public void setName(String name) {
        this.name = name;
    }
    //为什么这里面不需要 this.name
    //1.这里没有命名冲突的问题
    //2.其实 this.可以省略
    public String getName() {
        return name;
    }


    public String toString(){

        return "编号=" + id + ",姓名=" + name;
    }

    //3.构造器
    public Employee(){

    }
    public Employee(int id, String name) {
        this.id = id;
        this.name = name;
    }
//    this();
    public Employee(int id,String name,int age){
//        this();//当前this()---->调用自己的无参构造方法
        this(id,name);
        this.age = age;
    }


}
